package br.com.efacta.bagarita.services.api;

import org.docx4j.openpackaging.packages.WordprocessingMLPackage;

import br.com.efacta.bagarita.services.exception.HTMLParsingErrorException;

/**
 * Serviço responsável por processar um input HTML convertendo a um formato
 * desejado.
 * 
 * @author felipe.rico
 * 
 */
public interface HTMLInputProcessorService {

    /**
     * Converte um html para o formato Office Open XML para posterior adição no
     * arquivo docx. Abrange a conversão de fórmulas em formato LaTEX no meio do
     * HTML para o formato OpenMathXML.
     * 
     * @param htmlInput
     * @param wordMLPackage
     * @throws HTMLParsingErrorException
     *             caso ocorra algum erro na conversão do HTML em decorrência de
     *             má formação e/ou erros de sintaxe.
     */
    void addHTMLInput2Docx(String htmlInput, WordprocessingMLPackage wordMLPackage) throws HTMLParsingErrorException;

    /**
     * Extrai o texto de um input HTML, desconsiderando imagens e fórmulas no
     * formato LaTEX.
     * 
     * @param hmtlInput
     * @return {@link String} com o texto extraído.
     */
    String extractHTMLText(String hmtlInput);
}
